package com.lifeng.fastssmr.service;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import redis.clients.jedis.ShardedJedisPool;

/**
 * @Description: 操作Redis数据库工具类
 * @author  lifeng
 * @date 2016年9月28日 下午9:50:31 
 * @version V1.0
 */
@Component
public class RedisService {
	@Autowired
	private RedisTemplate<Serializable, Serializable> redisTemplate;
	@Autowired
	private  ShardedJedisPool shardedJedisPool;
	/**
	 * opsForValue() 是操作string类型
	 * 通过key获取value
	 * @return
	 */
	public  Object get(String key){
		return redisTemplate.opsForValue().get(key);
	}
	/**
	 * 保存key-value
	 * @param key
	 * @param value
	 */
	public  void set(String key,String value){
		redisTemplate.opsForValue().set(key, value);
	}
	/**
	 * 保存key-value,设置key的生存时间
	 * @param key
	 * @param value
	 */
	public void set(String key,String value,long expire){
		redisTemplate.opsForValue().set(key, value, expire, TimeUnit.SECONDS);
	}
	/**
	 * 通过key删除
	 * @param key
	 */
	public void delete(String key){
		redisTemplate.delete(key);
	}
	/**
	 * 保存list集合,从左添加
	 * @param key
	 * @param coll
	 */
	public void set(String key,List<Serializable> list){
		redisTemplate.opsForList().leftPushAll(key, list);
	}
	/**
	 * 删除多个key
	 * @param key
	 * @param coll
	 */
	public void delete(Collection<Serializable> keys){
		redisTemplate.delete(keys);
	}
	/**
	 * 更新list
	 * @param key
	 * @param list
	 */
	public void updateList(String key,List<Serializable> list){
		redisTemplate.delete(key);
		redisTemplate.opsForList().leftPushAll(key, list);
	}
}
